import 'package:flutter/material.dart';
import 'package:get/get.dart';

import '../../../../common/style/icon_font.dart';
import '../../../../common/widgets/o2_stateless_widget.dart';
import 'index.dart';
import 'widgets/widgets.dart';

class MainPage extends GetView<MainController> {
  const MainPage({Key? key}) : super(key: key);

// 内容页
  Widget _buildPageView() {
    return PageView(
      physics: const NeverScrollableScrollPhysics(),
      controller: controller.pageViewController,
      onPageChanged: controller.handlePageChanged,
      children: const [CheckInWidget(), StatisticWidget()],
    );
  }

  // 底部导航
  Widget _buildBottomNavigationBar() {
    return Obx(() => BottomNavigationBar(
        items: controller.state.bottomTabs,
        currentIndex: controller.state.currentIndex,
        type: BottomNavigationBarType.fixed,
        onTap: controller.handleNavBarTap));
  }

  @override
  Widget build(BuildContext context) {
    return GetBuilder<MainController>(
      builder: (_) {
        return O2UI.basePopScope(
            child: Scaffold(
                appBar: AppBar(
                  title: Obx(() => Text(controller.state.title)),
                  actions: [
                    IconButton(
                        onPressed: () => controller.gotoSetting(),
                        icon: const Icon(O2IconFont.settings))
                  ],
                ),
                body: _buildPageView(),
                bottomNavigationBar: _buildBottomNavigationBar()));
      },
    );
  }
}
